**一、前言
前幾天已經了解到
Client API Server發送Request後,
Server會透過Response回傳結果。
而在上一篇中認識了JSON,
知道API常常會利用JSON格式來傳遞資料。
不過Server回傳Response時,
除了回傳資料之外其實還會告訴我們
這次Request到底有沒有成功
這時候就會看到一個很重要的東西:
**HTTP Status Code
今天就來認識幾個Web API中常見的Status Code。
⸻
**二、什麼是HTTP Status Code?
HTTP Status Code是伺服器在Response中回傳的三位數代碼,
用來表示這次Request的處理結果。
例如我們使用API查詢資料
如果成功取得資料,Server會回傳:200
如果找不到指定的資料,則可能會看到:404
因此看到Status Code時,可以先把他理解成
伺服器用一個數字告訴我們這次Request的結果。
Status Code可以分成幾個不同的類別:
剛開始學習時,可以先特別記住2xx、4xx和5xx。
⸻
**三、常見的 200、404 和 500
所以如果我們今天使用GET查詢API,
而且看到200通常就代表這次請求成功。
404則代表找不到指定的資源。
例如API網址輸入錯誤或是請求的資源不存在
例如:
404 Not Found
這時候不一定代表整個網站壞掉可能是
「你要求的東西不存在。」
例如原本API是:
/books
卻不小心輸入成:
/bookss
如果伺服器沒有這個Endpoint就可能回傳404。
500通常代表伺服器在處理Request時發生錯誤。
例如:
Client→Request→Server→發生問題→500
這種情況通常比較偏向Server端的問題,
而不一定是使用者輸入錯誤。
⸻
**四、Status Code的重要性
如果沒有Status Code,
Client收到Response後就比較難直接知道這次Request是否成功。
例如今天App向天氣API查詢資料。
如果成功:
200+JSON 天氣資料
App 就可以把資料顯示給使用者。
但如果API回傳:
404
App就知道這次請求沒有找到指定的內容,
可以進一步顯示錯誤訊息。
因此Status Code就像是API Response中的一個「結果提示」。
⸻
**六、總結
今天主要認識了HTTP Status Code,
了解到Server在Response中除了回傳資料之外,
也會透過三位數的Status Code告訴Client這次Request的處理結果。
目前先記住幾個常見的:
200 → 成功
404 → 找不到資源
500 → Server 發生錯誤
把前幾天學到的內容串起來,就可以理解一個基本的 API 操作:
Client
↓
GET Request
↓
API Server
↓
Status Code
↓
JSON Response
↓
Client
例如成功查詢資料時,
Server可能回傳200和JSON資料
如果找不到指定的Endpoint則可能回傳 404。
透過今天的實作我也開始了解到,
API的Response不只是「有沒有資料」而已,
還可以透過Status Code判斷這次請求是否成功。
目前已經學到API、HTTP、Request、Response、GET、POST、URL、Endpoint、Parameters、JSON和Status Code。
下一篇就是第一週的最後一個主題:
Swagger是什麼?
如何使用Swagger測試API?
也會把前幾天學到的內容實際串在一起。